home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Oberon⁄F™ 1.1 / Mac / Mod / TextEdit (.txt) < prev    next >
Encoding:
Oberon Document  |  1995-03-07  |  6.9 KB  |  181 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Geneva
  16. Geneva
  17. Geneva
  18. Geneva
  19. MODULE MacTextEdit;
  20.     IMPORT SYSTEM, MacTypes, MacQuickDraw, MacCQuickDraw;
  21.     CONST
  22.         teJustLeft* = 0;
  23.         teJustCenter* = 1;
  24.         teJustRight* = -1;
  25.         TEScrpHandle = 0AB4H;
  26.         TEScrpLength = 0AB0H;
  27.         TEXT = 54455854H;
  28.         HANDLE = 2;
  29.         UNTAGGED = 1;
  30.         CODE = 1; NOSTKCHK = 4;
  31.         A0 = 8;
  32.     TYPE
  33.         Chars* = ARRAY [UNTAGGED] 32000 OF CHAR;
  34.         CharsPtr* = POINTER TO Chars;
  35.         CharsHandle* = POINTER [HANDLE] TO Chars;
  36.         TERec* = RECORD (MacTypes.Data)
  37.             destRect*: MacTypes.Rect;
  38.             viewRect*: MacTypes.Rect;
  39.             selRect*: MacTypes.Rect;
  40.             lineHeight*: INTEGER;
  41.             fontAscent*: INTEGER;
  42.             selPoint*: MacTypes.Point;
  43.             selStart*: INTEGER;
  44.             selEnd*: INTEGER;
  45.             active: INTEGER;
  46.             wordBreak*: MacTypes.ProcPtr;
  47.             clikLoop*: MacTypes.ProcPtr;
  48.             clickTime: LONGINT;
  49.             clickLoc: INTEGER;
  50.             caretTime: LONGINT;
  51.             caretState: INTEGER;
  52.             just*: INTEGER;
  53.             teLength*: INTEGER;
  54.             hText*: CharsHandle;
  55.             recalBack: INTEGER;
  56.             recalLines: INTEGER;
  57.             clikStuff: INTEGER;
  58.             crOnly*: INTEGER;
  59.             txFont*: INTEGER;
  60.             txFace*: MacTypes.Style;
  61.             txMode*: INTEGER;
  62.             txSize*: INTEGER;
  63.             inPort*: MacQuickDraw.GrafPtr;
  64.             highHook*: MacTypes.ProcPtr;
  65.             caretHook*: MacTypes.ProcPtr;
  66.             nLines*: INTEGER;
  67.             lineStarts*: ARRAY [UNTAGGED] 16000 OF INTEGER
  68.         END;
  69.         TEPtr* = POINTER TO TERec;
  70.         TEHandle* = POINTER [HANDLE] TO TERec;
  71.         ScrpSTElement* = RECORD (MacTypes.Data)
  72.             scrpStartChar*: LONGINT;
  73.             scrpHeight*: INTEGER;
  74.             scrpAscent*: INTEGER;
  75.             scrpFont*: INTEGER;
  76.             scrpFace*: MacTypes.Style;
  77.             scrpSize*: INTEGER;
  78.             scrpColor*: MacCQuickDraw.RGBColor;
  79.         END;
  80.     PROCEDURE [CODE] PutScrap (length: LONGINT; theType: MacTypes.ResType;
  81.                                         source: MacTypes.Ptr): LONGINT 0A9H, 0FEH;
  82.     PROCEDURE [CODE] GetScrap (hDest: MacTypes.Handle; theType: MacTypes.ResType;
  83.                                         VAR offset: LONGINT): LONGINT 0A9H, 0FDH;
  84.     PROCEDURE [CODE] hLock 0A0H, 029H;
  85.     PROCEDURE [CODE] hUnlock 0A0H, 02AH;
  86.     PROCEDURE [NOSTKCHK] HLock (h: MacTypes.Handle);
  87.     BEGIN
  88.         SYSTEM.PUTREG(A0, h);
  89.         hLock
  90.     END HLock;
  91.     PROCEDURE [NOSTKCHK] HUnlock (h: MacTypes.Handle);
  92.     BEGIN
  93.         SYSTEM.PUTREG(A0, h);
  94.         hUnlock
  95.     END HUnlock;
  96.     (** Initialization and Allocation **)
  97.     PROCEDURE [CODE] TENew* (destRect, viewRect: MacTypes.Rect): TEHandle 0A9H, 0D2H;
  98.     PROCEDURE [CODE] TEDispose* (hTE: TEHandle) 0A9H, 0CDH;
  99.     (** Accessing the Text of an Edit Record **)
  100.     PROCEDURE [CODE] TESetText* (text: MacTypes.Ptr; length: LONGINT; hTE: TEHandle) 0A9H, 0CFH;
  101.     PROCEDURE [CODE] TEGetText* (hTE: TEHandle): CharsHandle 0A9H, 0CBH;
  102.     (** Insertion Point and Selection Range **)
  103.     PROCEDURE [CODE] TEIdle* (hTE: TEHandle) 0A9H, 0DAH;
  104.     PROCEDURE [CODE] TEClick* (pt: MacTypes.Point; extend: BOOLEAN; hTE: TEHandle) 0A9H, 0D4H;
  105.     PROCEDURE [CODE] TESetSelect* (selStart, selEnd: LONGINT; hTE: TEHandle) 0A9H, 0D1H;
  106.     PROCEDURE [CODE] TEActivate* (hTE: TEHandle) 0A9H, 0D8H;
  107.     PROCEDURE [CODE] TEDeactivate* (hTE: TEHandle) 0A9H, 0D9H;
  108.     (** Editing **)
  109.     PROCEDURE [CODE] TEKey* (key: MacTypes.UnpackedChar; hTE: TEHandle) 0A9H, 0DCH;
  110.     PROCEDURE [CODE] TECut* (hTE: TEHandle) 0A9H, 0D6H;
  111.     PROCEDURE [CODE] TECopy* (hTE: TEHandle) 0A9H, 0D5H;
  112.     PROCEDURE [CODE] TEPaste* (hTE: TEHandle) 0A9H, 0DBH;
  113.     PROCEDURE [CODE] TEDelete* (hTE: TEHandle) 0A9H, 0D7H;
  114.     PROCEDURE [CODE] TEInsert* (text: MacTypes.Ptr; length: LONGINT; hTE: TEHandle) 0A9H, 0DEH;
  115.     (** Text Display and Scrolling **)
  116.     PROCEDURE [CODE] TESetJust* (just: INTEGER; hTE: TEHandle) 0A9H, 0DFH;
  117.     PROCEDURE [CODE] TEUpdate* (rUpdate: MacTypes.Rect; hTE: TEHandle) 0A9H, 0D3H;
  118.     PROCEDURE [CODE] TextBox* (text: MacTypes.Ptr; length: LONGINT;
  119.                                          box: MacTypes.Rect; just: INTEGER) 0A9H, 0CEH;
  120.     PROCEDURE [CODE] TEScroll* (dh, dv: INTEGER; hTE: TEHandle) 0A9H, 0DDH;
  121.     (** Scrap Handling **)
  122.     PROCEDURE [NOSTKCHK] TEScrapHandle* (): MacTypes.Handle;
  123.         VAR handle: MacTypes.Handle;
  124.     BEGIN
  125.         SYSTEM.MOVE(TEScrpHandle, SYSTEM.ADR(handle), 4);
  126.         RETURN handle
  127.     END TEScrapHandle;
  128.     PROCEDURE [NOSTKCHK] TEGetScrapLen* (): LONGINT;
  129.         VAR length: LONGINT;
  130.     BEGIN
  131.         SYSTEM.MOVE(TEScrpLength, SYSTEM.ADR(length), 4);
  132.         RETURN length
  133.     END TEGetScrapLen;
  134.     PROCEDURE [NOSTKCHK] TESetScrapLen* (length: LONGINT);
  135.     BEGIN
  136.         SYSTEM.MOVE(SYSTEM.ADR(length), TEScrpLength, 4)
  137.     END TESetScrapLen;
  138.     PROCEDURE [NOSTKCHK] TEFromScrap* (): MacTypes.OSErr;
  139.         VAR scrap: MacTypes.Handle; res, off: LONGINT;
  140.     BEGIN
  141.         scrap := TEScrapHandle();
  142.         res := GetScrap(scrap, TEXT, off);
  143.         RETURN SHORT(res)
  144.     END TEFromScrap;
  145.     PROCEDURE [NOSTKCHK] TEToScrap* (): MacTypes.OSErr;
  146.         VAR scrap: MacTypes.Handle; res: LONGINT;
  147.     BEGIN
  148.         scrap := TEScrapHandle();
  149.         HLock(scrap);
  150.         res := PutScrap(TEGetScrapLen(), TEXT, scrap);
  151.         HUnlock(scrap);
  152.         RETURN SHORT(res)
  153.     END TEToScrap;
  154.     (** Advanced Routines **)
  155.     PROCEDURE [NOSTKCHK] SetWordBreak* (wBrkProc: MacTypes.ProcPtr; hTE: TEHandle);
  156.     BEGIN
  157.         hTE.wordBreak := wBrkProc
  158.     END SetWordBreak;
  159.     PROCEDURE [NOSTKCHK] SetClikLoop* (clikProc: MacTypes.ProcPtr; hTE: TEHandle);
  160.     BEGIN
  161.         hTE.clikLoop := clikProc
  162.     END SetClikLoop;
  163.     PROCEDURE [CODE] TECalText* (hTE: TEHandle) 0A9H, 0D0H;
  164.     (** 128K ROM **)
  165.     PROCEDURE [CODE] TESelView* (hTE: TEHandle) 0A8H, 011H;
  166.     PROCEDURE [CODE] TEPinScroll* (dh, dv: INTEGER; hTE: TEHandle) 0A8H, 012H;
  167.     PROCEDURE [CODE] TEAutoView* (auto: BOOLEAN; hTE: TEHandle) 0A8H, 013H;
  168.     PROCEDURE [CODE] TEInit*    0A9H, 0CCH;
  169. END MacTextEdit.
  170. TextControllers.StdCtrlDesc
  171. TextControllers.ControllerDesc
  172. Containers.ControllerDesc
  173. Controllers.ControllerDesc
  174. TextRulers.StdRulerDesc
  175. TextRulers.RulerDesc
  176. TextRulers.StdStyleDesc
  177. TextRulers.StyleDesc
  178. TextRulers.AttributesDesc
  179. Geneva
  180. Documents.ControllerDesc
  181.